package com.teach.shape4;

import java.util.Scanner;

public abstract class AbstractShape implements IShape {
	/**
	 * 周长
	 */
	protected float perimeter;
	
	/**
	 * 面积
	 */
	protected float area;
	
	/**
	 * 图形名称
	 */
	protected String name;
	
	/**
	 * 获取周长
	 * 
	 * @return 周长
	 */
	public float getPerimeter() {
		return perimeter;
	}

	/**
	 * 获取面积
	 * 
	 * @return
	 */
	public float getArea() {
		return area;
	}
	
	/**
	 * 图形的基本信息从控制台输入
	 * @param sc 控制台输入对象
	 */
	public abstract void input(Scanner sc);
	
	/**
	 * 输入后计算周长和面积
	 */
	public abstract void calculate();
	
	/**
	 * 图形初始化
	 */
	public final void init(){
		input(new Scanner(System.in));
		calculate();
	}
	
	/**
	 * 打印基本信息
	 */
	public final void show(){
		System.out.format("%s\t周长：%.2f\t面积：%.2f\t%s\n",name,perimeter,area,getInputInfo());
	}
	
	/**
	 * 获取输入的基本信息
	 * @return
	 */
	public abstract String getInputInfo();
}
